/**
 * Copyright 2006 Brad Reynolds
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.leeloo.databinding.internal.ui;

import java.util.List;

import org.eclipse.jface.action.Action;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.ui.console.ConsolePlugin;
import org.eclipse.ui.console.IConsoleConstants;

/**
 * Clears a viewer and its input.
 * 
 * @author Brad Reynolds
 */
public class ClearViewerAction extends Action {
    private final TableViewer viewer;
    private final List input;
    
    /**
     * Constructs a new instance.
     * 
     * @param viewer
     * @param input
     */
    public ClearViewerAction(TableViewer viewer, List input) {
        if (viewer == null) {
            throw new IllegalArgumentException("Parameter viewer was null."); //$NON-NLS-1$
        }
        if (input == null) {
            throw new IllegalArgumentException("Parameter input was null."); //$NON-NLS-1$
        }
        
        this.viewer = viewer;
        this.input = input;
        
        setText(Messages.getString("ClearInputAction.clear.log")); //$NON-NLS-1$
        setToolTipText(Messages.getString("ClearInputAction.clear")); //$NON-NLS-1$
        
        setImageDescriptor(ConsolePlugin.getImageDescriptor(IConsoleConstants.IMG_LCL_CLEAR));
    }
    
    /**
     * Clears the viewer and its input.
     */
    public void run() {
        input.clear();
        viewer.refresh();
    }
}
